…Respuesta del Servidor
Toda la información del encabezamiento se envía línea a línea, en el formato Palabra Clave: Valor.
Por ejemplo,
HTTP/1.1 200 OK
Date: Wed, 19 May 1999 18:20:56 GMT
Server: Apache/1.3.6 (Unix) PHP/3.0.7
…
Si la solicitud del cliente es válida, se envía la información solicitada. Esta información puede ser una copia de un archivo o la respuesta de un programa CGI.
NuSOAP
Conjunto de clases PHP que permiten a los usuarios enviar y recibir mensajes SOAP usando HTTP. Antiguamente conocido como SOAPx4, es distribuido por NuSphere Corporation (http://www.nusphere.com) y ha sido usado como núcleo de varios paquetes de Web Services, incluyendo PEAR-SOAP.
Uno de los beneficios de NuSOAP es que no es una extensión de PHP sino que está escrito en PHP.
Arquitectura…
NuSOAP emplea una clase base que brinda métodos para serialización de variables y envelopes, información de espacios de nombres y mapeo de diferentes tipos a diferentes espacios de nombres.
La interacción con un servicio Web se logra usando un cliente de alto nivel llamado soapclient. Las operaciones SOAP se ejecutan pasando el nombre de la operación que queremos ejecutar al método call().
Arquitectura…
Si el servicio que vamos a utilizar tiene un archivo WSDL asociado, la clase soapclient toma como argumento el URL del archivo en su constructor y usa la clase wsdl para analizar el archivo WSDL y extraer todos los datos.
La clase soapclient usa estos datos para codificar los parámetros y crear el SOAP envelope cuando el usuario ejecuta una llamada al servicio.
Cuando se ejecuta la llamada, la clase soapclient usa a la clase soap_transport_http para enviar el mensaje saliente y recibir el mensaje entrante. Este es analizado por la clase soap_parser
Arquitectura…
…Arquitectura
Si el servicio que vamos a utilizar no tiene un archivo WSDL asociado, entonces el proceso es diferente. Al constructor de la clase soapclient se le pasa el URL del servicio. El llamado se hace con el método call, pero los detalles que eran proporcionados por el archivo WSDL deben pasarse ahora como argumentos. Los parámetros que sean tipos propietarios pueden representarse usando la clase soapval que permite a los usuarios adaptar la serialización de un parámetro.
Instalación y Configuración
Descargue los archivos de http://dietrich.ganx4.com/nusoap
Extraiga el archivo nusoap.php de su zip,
Copie la clase en un directorio,
Incluya la clase en su script. El camino puede ser relativo o absoluto:
include_once(‘nusoap.php’)
Ejemplo de Cliente PHP Soap…
Ejemplo de Servidor PHP Soap…
Manejo de Errores
La clase soap_fault proporciona una forma de especificar errores y devolverlos cuando trabajamos con NuSOAP.
Los argumentos pasados a su constructor son los siguientes:
faultcode – Valores disponibles ‘Client’ y ‘Server’. Los errores ‘Client’ indican que el mensaje no contenía la información requerida para que la operación fuera exitosa. Los errores ‘Server’ indican problemas de procesamiento en el servidor.
faultactor – No es totalmente funcional y puede dejarse vacía.
faultstring – Mensaje de error.
faultdetail – Detalles del error en XML relacionados con el elemento BODY del mensaje SOAP.
Creación de Tipos Complejos
SOAP permite que los usuarios definan sus propios tipos en la especificación. NuSOAP brinda la clase soapval para definir tipos. Ejemplo:
$param = new soapval(‘’,’double’,2.3433);
El parámetro sería serializado de la siguiente forma:
<soapVal xsi:type=“xsd:double”>2.3433</soapVal>
Página anterior | Volver al principio del trabajo | Página siguiente |